package be.kuleuven.mume.hulpklassen;

import java.text.DateFormat;
import java.text.SimpleDateFormat;

import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;
import be.kuleuven.mume.framework.AgendaItem;
import be.kuleuven.mume.framework.Antwoord;
import be.kuleuven.mume.framework.Vraag;

public class JSONHelper{
	private static final String TAG = "JSONParser";
	
	public static final String RESULT = "result";
	public static final String ID = "id";
	public static final String TEXT = "text";
	
	static class VAK {
		public static final String ID = "vakId";
	}
	
	static class VRAAG {
		public static final String ONDERWERP = "subject";
		public static final String ANTWOORDEN = "antwoorden";
	}
	
	static class ANTWOORD {
		public static final String VRAAG_ID = "vraagId";
	}
	
	public static JSONObject createVraag(Vraag vraag) {
		
		try {
			JSONObject jsonVraag = new JSONObject();
			jsonVraag.put(VAK.ID, vraag.getVakId());
			jsonVraag.put(VRAAG.ONDERWERP, vraag.getSubject());
			jsonVraag.put(TEXT, vraag.getText());
			jsonVraag.put(ID, vraag.getId());
			
			return jsonVraag;
		} catch (JSONException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	public static JSONObject createAntwoord(Antwoord antwoord) {

		try {
			JSONObject jsonAntwoord = new JSONObject();
			jsonAntwoord.put(ANTWOORD.VRAAG_ID, antwoord.getVraagId());
			jsonAntwoord.put(TEXT, antwoord.getText());

			return jsonAntwoord;
		} catch (JSONException e) {
			e.printStackTrace();
		}
		return null;
	}

	public static JSONObject createVrijeTijd(AgendaItem agendaItem) {
		try {
			JSONObject jsonAgenda = new JSONObject();
			DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
			jsonAgenda.put("date",df.format(agendaItem.getDatum()));
			df = new SimpleDateFormat("HH:mm");
			jsonAgenda.put("time",df.format(agendaItem.getDatum()));
			jsonAgenda.put("duur", agendaItem.getHours());
			jsonAgenda.put("duur_min", agendaItem.getMinutes());
			jsonAgenda.put("locatie", agendaItem.getLocatie());
			jsonAgenda.put("omschrijving", agendaItem.getOmschrijving());
			return jsonAgenda;
		} catch (JSONException e) {
			Log.e(TAG, "JSONException", e);
		}
		
		return null;
	}
	
	public static JSONObject createAfspraak(AgendaItem item) {
		JSONObject a = createVrijeTijd(item);
		try {
			a.put("persoon", item.getMet());
		} catch (JSONException e) {
			Log.e(TAG, "JSONException", e);
		}
		return a;
	}
}
